package cn.tedu.boot031.util;

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * 管理数据库连接
 */
public class DBUtil {
    //阿里提供的连接池(重复使用连接，管理连接数量)
    private static DruidDataSource dds;
    static {
        init();
    }
    private static void init(){
        dds = new DruidDataSource();//实例化连接池
        //设置数据库用户名，密码。最大连接数，初始连接数。连接数据的URL
        dds.setUsername("root");
        dds.setPassword("root");
        dds.setUrl("jdbc:mysql://localhost:3306/bootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true");
        dds.setInitialSize(10);//初始连接数
        dds.setMaxActive(20);//最大连接数
    }

    public static Connection getConnection() throws SQLException {
        /*
            连接池返回的Connection是对真实数据库连接的2次封装，它返回这个连接的close方法不是真将的连接关闭，
            而是相当于将连接还给连接池。
         */
        return dds.getConnection();
    }
}
